package com.pb.metadata.mapper;

import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.Map;

/**
 * 码表管理模块
 * @author liurongjun
 * @date 2021/02/22
 */
@Mapper
@Repository
public interface MateCodeMapper {

    /**
     * 分页查询
     *
     * @param paramMap 请求参数
     * @return
     */
    List<Map<String, Object>> selectByPage(Map<String, Object> paramMap);

    /**
     * 查询该码表是否创建
     *
     * @param paramMap 请求参数
     * @return
     */
    Integer exitCodeTable(Map<String, Object> paramMap);

    Integer exitSchemaName(Map<String, Object> paramMap);

    /**
     * 创建码表
     *
     * @param paramMap 请求参数
     */
    void createTable(Map<String, Object> paramMap);

    void createTableByCorpId(Map<String, Object> paramMap);

    /**
     * 赋权
     *
     * @param paramMap 请求参数
     */
    void grantReferences(Map<String, Object> paramMap);

    /**
     * 保存
     *
     * @param paramMap 请求参数
     */
    void insert(Map<String, Object> paramMap);

    /**
     * 查询是否唯一约束
     *
     * @param paramMap 码表对象集合
     * @return
     */
    Integer selectByConstraint(Map<String, Object> paramMap);

    /**
     * 自增序列
     *
     * @return
     */
    String maxTodeTableId ();

    /**
     * 修改新增记录
     *
     * @param paramMap 请求参数
     */
    void updateByTableAndDataUser (Map<String,Object> paramMap);

    /**
     * 更新
     *
     * @param paramMap 请求参数
     */
    void update(Map<String, Object> paramMap);

    /**
     * 获取数据库用户
     *
     * @return
     */
    List<Map<String,Object>> getBaseUserList();

    /**
     * 删除数据
     *
     * @param paramMap 请求参数
     */
    void delete(List<String> paramMap);

    /**
     * 启动/停用
     *
     * @param paramMap 码表ID集合
     */
    void startOrStop(Map<String,Object> paramMap);

    /**
     * 启用
     *
     * @param paramMap 码表ID集合
     */
    void lockedDate(List<String> paramMap);

    /**
     * 停用
     * @param paramMap 码表ID集合
     */
    void freeDate(List<String> paramMap);

}
